package com.zr.system.mapper;

import com.zr.common.core.domain.entity.SysOrganization;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 组织Mapper接口
 * 
 * @author why
 * @date 2022-10-24
 */
public interface SysOrganizationMapper 
{
    /**
     * 查询组织
     * 
     * @param id 组织主键
     * @return 组织
     */
    public SysOrganization selectSysOrganizationById(Long id);

    /**
     * 查询组织列表
     * 
     * @param sysOrganization 组织
     * @return 组织集合
     */
    public List<SysOrganization> selectSysOrganizationList(SysOrganization sysOrganization);

    /**
     * 新增组织
     * 
     * @param sysOrganization 组织
     * @return 结果
     */
    public int insertSysOrganization(SysOrganization sysOrganization);

    /**
     * 修改组织
     * 
     * @param sysOrganization 组织
     * @return 结果
     */
    public int updateSysOrganization(SysOrganization sysOrganization);

    /**
     * 删除组织
     * 
     * @param id 组织主键
     * @return 结果
     */
    public int deleteSysOrganizationById(Long id);

    /**
     * 批量删除组织
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysOrganizationByIds(Long[] ids);

    /**
     * 通过组织id查询组织名称
     * @param id
     * @return name
     * add by yangshaoming
     */
    public String selectOrganizationNameById(Long id);

 /**
     * 根据任务类型和上级组织id查询执行任务小组列表
     */
List<SysOrganization> selectTaskGroupList(@Param("type") String type, @Param("parentId") Long organizationId);

/**
     * 根据管理员查询所在区域编码
     */
    Long selectAddressCode(String userName);

    /**
     * 根据区域编码查找对应的管理员
     */
    String selectAdministratorIdByCode(Long addressCode);
}
